package com.ray.mapper;

import com.ray.bean.MessageTypeBean;
import com.ray.bean.UserBean;
import com.ray.exception.ServiceException;
import com.ray.pojo.CompanyWeChatUserPojo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;


public interface WeChatToMessageMapper {
	
	
	/**
	 * 获取所有的消息类型
	 * @param map
	 * @return
	 */
	int getAllMessageTypeCount(Map map);
	List<MessageTypeBean> getAllMessageType(Map map);
	
	/**
	 * 获取所有消息类型
	 * @return
	 */
	List<MessageTypeBean> getAllType();
	
	
	/**
	 * 添加消息类型
	 * @param type(消息类型)
	 * @param deptId(部门id)
	 * @param workShopId(车间id)
	 * @return
	 * @throws ServiceException
	 */
	void addMessageType(Map map);
	
	/**
	 * 校验类型是否存在
	 * @param workShopId
	 * @param deptId
	 * @param type
	 * @return
	 */
	List<String> checkType(Map map);
	
	
	/**
	 * 获取类型接受人员
	 * @param id(类型id)
	 * @return
	 * @throws ServiceException
	 */
	int getTypeUserCount(Map map);
	List<UserBean> getTypeUserData(Map map);
	
    /**
     * 获取消息中没有的接收人
	 * @param id(类型id)
	 * @param serachWhere(搜索条件)
	 * @return
	 * @throws ServiceException
	 */
	int getTypeNoHaveUserCount(Map map);
	List<UserBean> getTypeNoHaveUser(Map map);
	
	/**
	 * 添加消息类型
	 * @param id(消息类型id)
	 * @param userIdList(用户id集合)
	 * @return
	 * @throws ServiceException
	 */
	void addTypeUser(Map map);
	/**
	 * 删除消息类型
	 * @param id(消息类型id)
	 * @return
	 * @throws ServiceException
	 */
	void deleteType(Map map);
	/**
	 * 移除单个消息用户
	 * @param id(消息类型id)
	 * @return
	 * @throws ServiceException
	 */
	void removeTypeUser(Map map);
	/**
	 * 通过类型id集合获取用户id集合
	 * @param typeIdList
	 * @return
	 */
	List<String> getUserIdListByTypeList(@Param("typeIdList")List<String> typeIdList);

    /**
     * @Author: 李宇航
     * @Description: 通过类型获取用户信息
     * @Param:
     * @return:
     * @Date: 2018/11/1
     */
    List<CompanyWeChatUserPojo> getCompanyWeChatUsersByType(@Param("type") int type);
//	/**
//	 * 新增微信消息接收人员
//	* @date 2018年5月11日 下午4:34:29 
//	* @author 李斌
//	* @return void 
//	* @throws
//	 */
//	void addWeChatUser(Map<String, Object> map);
//	
//	/**
//	 * 查询微信消息接收人员,通过userId
//	* @date 2018年5月12日 上午8:52:36 
//	* @author 李斌
//	* @return WeChatToMessageBean 
//	* @throws
//	 */
//	WeChatToMessageBean getWeChatUserByUserId(Map<String, Object> map);
//	
//	/**
//	 * 获取微信信息接收人员
//	* @date 2018年5月12日 上午10:13:00 
//	* @author 李斌
//	* @return List<WeChatToMessageBean> 
//	* @throws 
//	 */
//	List<WeChatToMessageBean> getAllWeChatUser(Map<String, Object> map);
//	
//	/**
//	 * 更新微信消息接收人员状态
//	* @date 2018年5月12日 下午1:42:36 
//	* @author 李斌
//	* @return void 
//	* @throws
//	 */
//	void updateWeChatUserOnStatus(Map<String, Object> map);

	

}
